package com.ibeeking.found.org.b.rest.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ibeeking.found.common.entity.EmployeeDTO;
import com.ibeeking.found.common.entity.SimpleEmployeeDTO;
import com.ibeeking.found.common.entity.query.EmployeeFeignQuery;
import com.ibeeking.found.org.service.common.param.EmployeeParam;
import com.ibeeking.found.org.service.common.query.EmployeePageQuery;
import com.ibeeking.found.org.service.common.query.EmployeeQuery;
import com.ibeeking.found.org.service.common.vo.EmployeeStatusVO;
import com.ibeeking.found.org.service.common.vo.EmployeeVO;

import java.util.List;


/**
 * IEmployeeService
 *
 * @Author ibeeking
 * @Date 2021-01-29 14:48
 */
public interface IEmployeeService {

    /***
     * 员工列表
     */
    List<EmployeeVO> list(EmployeeQuery query);

    /***
     * 员工Page列表
     */
    Page<EmployeeVO> pageList(EmployeePageQuery query);

    /***
     * 新增
     */
    Boolean add(EmployeeParam param);

    /***
     * 修改
     */
    Boolean modify(EmployeeParam param);

    /***
     * 通过id查询
     */
    EmployeeVO view(Long id);

    /***
     * 修改状态
     */
    Boolean changeStatus(Long id, Integer status);

    /***
     * 通过id删除
     */
    Boolean del(Long id);

    /***
     * 员工列表
     */
    List<EmployeeDTO> feignQueryEmployeeList(EmployeeFeignQuery query);

    /***
     * 员工查询
     */
    SimpleEmployeeDTO feignQueryEmployee(Long employeeId);

    /***
     * 员工在职状态列表
     */
    List<EmployeeStatusVO> employeeStatusList();
}